/*
 * В этом файле хранятся функции заполения поля для разных уровней
 */


/**
 * Глобальные настройки игры
 */
function Properties() {
	this.gameTimeOut = 50; // задержка между шагами
	this.friction = 0; // доля потери скорости за ход в единицах
	this.width = 8000; // размеры поля
	this.height = 5000;
}

/**
 * Класс-массив. Каждая функция должна инициализировать объекты на игровом поле.
 */
var creator = {
	/**
	 * Создать тестовое поле
	 * @param {Game} game
	 * @param {Properties} prop
	 */
	random:function(game, prop){
		var count = 20;
		var speed = {
			min: 1,
			max: 2
		};
		var size = {
			min: 100,
			max: 250
		};
		
		var factory = new SphereFactory(game);
		factory.createActiveSphere((size.max + size.min) / 2, prop.width / 2, prop.height / 2, 0, 0);
		for (var i = 0; i < count; i++) {
			factory.createPassiveSphere(size.min + Math.random() * (size.max - size.min + 1),
					size.max + speed.max + Math.random() * (prop.width - (size.max + speed.max) * 2),
					size.max + speed.max + Math.random() * (prop.height - (size.max + speed.max) * 2),
					speed.max - Math.random() * 2 * speed.max,
					speed.max - Math.random() * 2 * speed.max);
		}
		game.condition = function(){
			if (game.list[0].sphType != "active") 
				return -1;
			if (game.list[0].rad >= 400) 
				return 1;
			return 0;
		}
		game.levelname = "Random level";
		game.levelinfo = "This is auto-generated level. It was created for testing only. Don't see orange ball? Try regenerate level."
	},
	
	/**
	 * Создать поле только с игроком
	 * @param {Game} game
	 * @param {Properties} prop
	 */
	empty:function(game, prop){
		(new SphereFactory(game)).createActiveSphere(300, prop.width / 2, prop.height / 2, 0, 0);
	}
}